java hdfs 新建目录

您所在的位置:网站首页 hdfs 查看文件路径 java hdfs 新建目录

java hdfs 新建目录

2023-03-28 17:33| 来源: 网络整理| 查看: 265

本讲我们来讲解如何读写另外一台计算机上面的HDFS。在实际的环境中,我们的HDFS存储和应用程序很有可能是运行在不同的计算机上的。

b3d0f7a59eb39c7ba89df53069b07ce9.png

上一讲我们实现了网络的互通,那么这一讲我们来讲解编写一个java程序来读写hdfs.。

步骤:

1、确保两台电脑网络互通(上一讲内容);

2、Centos里面的HDFS运行正常(上一讲内容);

3、Centos里面的防火墙开通9000端口(也就是centos里面的hdfs配置端口)

4、配置Windows里面的JDK;

5、配置Windows里面的Hadoop;

6、配置eclipse相关的hadoop插件或library包

7、创建Java程序。

一、开通9000端口

在centos的防火墙开通9000端口,如下:

d2127917c22927c4d8be5e97789fddd1.png

centos开启后,在windows里面的浏览器可以访问如下来测试是否能正常访问该端口:(注意这里要用浏览器的极速模式或者谷歌浏览器,ie浏览器或者兼容模式可能无法访问)

f9d5f749ede265597a95edcfe75d1ab3.png

另外,下面的所有的cmd命令都需要在新打开的cmd窗口中操作,如果用之前打开的cmd窗口,有可能测试失败,因为cmd都是针对打开窗口的时候的系统环境生效的。

二、配置Windows里面的JDK

本次演示的jdk版本

链接:https://pan.baidu.com/s/1X3hqp8DhdF-JEcK4rE6TyQ

提取码:kvgj

1e518e72a4310ffc7131e678ff8b92b7.png

我这里的jdk文件存放的位置。

f4b29ad5683b9d8b5248cf80cd8a8424.png

配置java_home

98c623af3fad864da40091f69af634f7.png

配置class_path

5ecd5d50f6338d14c7cdb62490ebc803.png

配置path

ad56f07e8d99966487f09b39f4cc9ba2.png

最终测试 java  和javac 命令都正常即可。

三、配置Windows里面的Hadoop

3.1配置环境变量

把hadoop压缩包解压,和centos里面的是通用的,只不过后缀为tar.zip的压缩包要不断解压才能得到最里面的文件夹。我这里是放在C盘根目录下。

链接:https://pan.baidu.com/s/1AJLenl05gs75XOQJisOyFg

提取码:4t4d

上面的hadoop的版本

b675c1d4fd9171dbdbf88ec12b091197.png

然后配置环境变量hadoop_home:

a42cf022f92278561dfc1b58459b5266.png

然后配置path,把hadoop_home加入到path里面

ff6b8e3ac13834bddcff5cad6594313e.png

保存后,cmd运行查看版本,或者直接在cmd命令框输入hadoop,如果提示以下错误:

35703c464f46864001c1db4c575d5884.png

根据提示,打开hadoop下面的hadoop-env.cmd  这里要注意的是cmd后缀是针对windows的,同名的sh后缀的是针对linux系统的。

894c719439783b14ab9cb9285d1fd62c.png

c734938bbb0cff41dec816e61d093624.png

选中hadoop-env.cmd文件,然后点击编辑(双击就直接运行了)。打开后把里面的“set JAVA_HOME=”改成如下:

cf4cdcbbc2ee356e6b487a68c9fea847.png

上面要注意的是,因为我的java是放在 C:\Program Files 里面的,如果直接写C:\Program Files\Java\jdk-13.0.2 那么在dos模式下系统是无法识别这个路径的。

dos文件名模式下,“C:\Program Files”的缩写是“PROGRA~1”。或者改成“C:\Program Files”\Java\jdk-13.0.2

也就是用双引号括起来,否则系统无法识别有效的路径。

设置完后,运行cmd,可以看到正常了。

8cdc0df53c6eb75555c41163921c1982.png

3.2下载winutils.exe

winutils.exe是在Windows系统上需要的hadoop调试环境工具,里面包含一些在Windows系统下调试hadoop、spark所需要的基本的工具类,

下载后放在hadoop根目录bin下面

c3c5306c7fa481ba5a1f83380a0c16b7.png

否则会提示:

e8f9d2f1960acd127de4e9e8414a165a.png

3.3 下载hadoop.dll

将hadoop.dll分别复制到hadoop根目录的/bin和 C:\windows\system32目录下。

b98658be9eee80c1e97c3ecc93fce19e.png

1594d30fe684c63ab4e4aba6c86a6baa.png

四、配置eclipse的hadoop插件

演示用的eclipse版本是4.14:

f97a558a9b846ecf123eb98813055858.png

安装eclipse的hadoop插件,需要下载对应hadoop的eclipse插件版本。这里演示的hadoop版本是2.9.2,所以插件也是匹配的版本。

下面是eclipse安装路径:

c7cd39c2630cbc76f7d110f3459f2b82.png

先把eclipse关闭后,再把下载的hadoop-eclipse-plugin-2.9.2.jar放到dropins目录下面。

48659803e4a8e7b9a0fe2947f180b414.png

这里要说下eclipse常见安装插件的方式,网上很多方法都说把上面的jar放到plugins文件夹下面,其实eclipse从3.5版本后已经进行了修改,安装插件一般有3个方法:

1、直接用Eclipse在:“帮助”–>“安装软件”选项下安装。

2、link安装,方法是建一个links,里面建一个link文件把插件的路径配过去。

3、dropins安装方法,把需要的插件复制(拖放)到eclipse\dropins文件夹中,然后插件就安装成功了(当然必须先解压)。如要在其他机器上使用自己的插件。也只需要拷贝自己的dropins覆盖掉原有的。

eclipse启动后,可以看到在Project Explorer 多了一个“DFS Locations文件夹”

cfd858870b46c544eff019ea18dbb461.png

在windows-show view-other 启动hadoop配置窗口

4a2b415ddb902c3d9c60fc51537ea39d.png

选中map/reduce locations 然后点击确定,该窗口就可以显示在IDE底部。

c0fbd8b49240ce07ea140cbadc570190.png

底部可以看到如下,点击右边蓝色的大象图标可以新增配置点:

dcfb086f6f9e296624c07bb40bde050b.png

在配置点中,我们输入以下参数,配置完后点击“Finsh":

16ceb99e6078ebe867070dcd531a1af4.png

然后,再打开:window --> proferences

ac53c0a32700722af306d914b4710716.png

找到Hadoop Map/Reduce  点击右边的browse 配置本地hadoop的安装路径,配置好后点击apply and close 来确认。

09aa08c1128c84b9a089a78ac4637618.png

五、创建Java程序

5.1创建项目

打开eclipse,这里创建一个java项目,名称自定,

0ff06887899438a905f3d6c37618aa21.png

在map/reduce 里面选中 map/reduce project

2f83748540443c85d367dd679b737e3c.png

起一个名称,点击next

8fe0f70b221db89233b8372a154ed1c2.png

完成后,我们可以看到新建的项目里面多了一个library包,里面包含了hadoop所用到的jar.

dfdd19383258dd930ec8e050c766fa8d.png

如果没有配置hadoop这个插件的话,需要自己通过建立Mavan项目(配置好xml文件后,mavan框架自动帮你联网下载完所有需要的jar包),或者自己建立一个普通的java项目并且自己导入对应的hadoop的jar包。下面就是收到导入hadoop相关的jar包。如果你安装好了hadoop对应的eclipse插件,那么是不需要下面这一步的。

5.2导入hadoop的jar包(如果5.1能够创建mar/reduce project 就跳过这一步)

如果你上面的5.1步骤,不是通过创建map/reduce project 创建项目的,而是创建一个普通的java项目,则我们需要导入hadoop操作所需要的jar包,但是这一步很容易导致jar包缺失导致系统提示“没有HDFS文件系统”,也就是无法远程访问hdfs文件系统。这些包在我们hadoop的安装路径(C:\hadoop-2.9.2\share\hadoop\common   红色路径每台电脑都不一定一样)下面。

0abbd8f5dca1eee5cd9180b091641fc0.png

如果不到如hadoop的jar包,我们会发现,很多问题,如下红色波浪线:

50ec8bc20b6052961112c521e4e56dc4.png

首先:选中你自己创建的项目,如下:

dc8991a5c6c10074ef216710b4ca8c7c.png

然后点击File->Properties->

a3baad84264586e66f64bd5ca8862b87.png

然后选中“Java Buile Path->Libraries->ClassPath->Add Library->User Library” 来创建一个自定义的jar包存储位置,然后点击Next

da5eef94fa592472d13172c1cb61728e.png

然后点击“User Libraries-->New...”在输入框中输入你要创建的Libraries的名称,这里名称自定,同样是要见名知意。我这里是hadoopJar

3027ece2da7c1cef5f52f6ce84fb2f52.png

最后点击OK,然后点击应用按钮“Apply and Close”进入到下面的界面。

83fe1d4c1c4a4accefe6e7e9ae3c7109.png

点击add external Jars 来添加jar包的路径。把common下面的所有jar包选中就可以了。

如下common目录下有

8acfb8c59411c9985bfe69a4afe3687f.png

lib目录下也有

4f711f7b5eb72b8cfee586a56737566a.png

souces里面也有

f2456e5b169df8ddff64c0eeee4cf4a5.png

所有选完后我们展开hadoopJar可以看到有了很多jar包

3130c597cdb5b7e50ba155bf4eaa3d3e.png

最后点击下面的“apply and close”

760600f9936b03576690fb22acfea00a.png

这时候我们可以看到,所有导包的语句没有了波浪线。

574ab1d7694d54361af65de4da95f2c9.png

5.3编写代码

注意我这里是要在我的hdfs的根目录下面创建一个java的文件夹。我们看到原来centos的hdfs里面是没有java这个文件夹的。

b7bf98040fb881523a6697a09842dda8.png

在项目的src文件夹里面创建一个package,

fda2a01143e14a4a5cf05a5717a976dc.png

在name这里输入名称,名称自定

88681b9b9600d91e3c83855dcd81c003.png

,然后在包里面创建主类,主类名称同样自定。包主要是为了后续给class分类。

92c4b93b2dee24ef41fa33710183af49.png

9efb37fc92fa034d24e03b2b48f8a42c.png

在主类中编写代码如下,不给你们源码了,好好找找写代码的感觉:

f5b3be39134bccf85df40b76c32434a3.png

如果在运行的时候报错,报错的意义大概是Administrator用户被拒绝访问,那就是在配置的时候root用户没有生效,可以修改下上面的43行代码,改成:

bceb2f77a1f4a90b0fe3390257df6475.png

也就是规定通过root

保存后运行结果如下,选择“java application”:

0591eb0872fdec7d64c78f57e3d346be.png

结果如下:

3640976d39b97d78cc0a0d12adaa4cb6.png

此时我们进入centos里面看看,经过我们java程序操作后,我们可以看到hdfs上多了一个java 文件夹:

5c0bda91b3ae2842a06252b56016f441.png

最后,如果想统一下载所有内容的,可以用这个链接(文件比较大):

还有hadoop2.6版本的针对eclipse的插件hadoop-eclipse-plugin-2.6.0.jar:

链接:https://pan.baidu.com/s/1tFgsWc1pY9TofbM1zkTfHg

提取码:1nqn

还有hadoop2.2版本的windows下的hadoop.dll和winutils.exe:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3